The process of developing a system which comprises plurality of sub-systems is generally very long and complicated. Several separate groups are generally assigned for separately developing each sub-system, while defining at least the following for each sub-system:                a. An input messages domain which includes all the possible input messages that the sub-system may receive, and one or more other sub-systems that can issue each of said input messages;        b. The input vs. output behavior of the sub system (i.e., the product of the sub-system); and        c. An output messages domain that includes all the messages that the sub-system can issue, and the addressee for each of said output messages.        
During the very long process of the real system development, or more particularly, of each and all the separate real sub-systems involved, there are many occasions in which a need is arisen to test the inter-behavior of two or more subsystems, one with respect to the others. However, naturally the development of all the separate real sub-systems does not progress at the same speed, and there are many cases in which one sub-system cannot be tested until the development of another sub-system sufficiently progresses to a desired stage. Such scenarios cause many undesired delays in the system development. Moreover, even when the development of the whole system is close to the final stage, and all the sub-systems are supposed to be available for a complete system test, there are cases in which one sub-system is missing due to a sudden failure, causing the complete test to be postponed until the missing sub-system is provided.
It is therefore desired to provide a simulating system which can replace, at any time, one or more sub-systems of a real system, or alternatively, when any simulated sub-system becomes available, to easily substitute the real sub-system for the simulated one.
An example of such a system is a missile system. The missile system comprises the missile sub-system itself (which has tracking and guiding capabilities, etc.), the launcher sub-system, the control center sub-system, etc. In this case, it is sometimes necessary to carry out a partial test of the real sub-systems. For example, in order to test a real control center and a real launcher which are available, without having a missile, there is a need to substitute a real missile with a simulated missile. In another example, there may be occasions in which the launcher and the missile are unavailable while testing of the control center is necessary. In that case the simulator has to simulate both the launcher sub-system and the missile sub-system. Later, when one of said sub-systems becomes available, the simulation for this sub-system may be replaced by the real sub-system, which has just recently become available. It should be noted that it is necessary to introduce to each sub-system, either real or simulated, an external and real-time “world” as similar as possible to the real world, with as many various events and failures, as possible. For example, when testing a missile on the ground, it is necessary to provide a flight-like simulation.
Sequence diagrams are widely used in the art by engineers who define the intercommunication between the various sub-systems of a developed system. A sequence diagram describes sequentially, in terms of time, the messages that flow in the system between the various subsystems. Moreover, the issuing of at least some of the messages in the sequence diagram is conditioned, and said conditions are part of the sequence diagram. In general, the sequence diagrams are graphically described. It should be noted that each sequence diagram may comprise several sub-sequences. Sequence diagrams are well known in the art, and they can be prepared using the language UML (versions 1 and 2 are presently available).
It is therefore an object of the present invention to provide a method and tool for forming a real time simulator which is capable of simulating, either partially or completely, a real system which in turn, comprises plurality of sub-systems.
It is another object of the present invention to provide generic method and tool for designing simulators for various types of systems.
It is still another object of the present invention to enable, including in a test, a combination of the simulated and real sub systems, while enabling easy alternation between simulated and real sub-systems.
Other objects and advantages of the present invention will become apparent as the description proceeds.